<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>querySelector+querySelectorAll</title>
  </head>
  <body>
    <ul class="list">
      <!-- 
        教大家一个写法：
        li.list-item{item $}*6
        可以生成6个类名为list-item 内容为 item 对应下标的li元素
        具体内容如下:
      -->
      <li class="list-item">item 1</li>
      <li class="list-item">item 2</li>
      <li class="list-item">item 3</li>
      <li class="list-item">item 4</li>
      <li class="list-item">item 5</li>
      <li class="list-item">item 6</li>
    </ul>
    <script type="text/javascript">
      // query系列返回的结果是节点集合 NodeList
      // query系列同样是元素以及document文档对象都可以调用
      var oList = document.querySelector('.list'),
        // NodeList(6) -> 6个list-item元素
        oListItems = oList.querySelectorAll('.list-item'),
        oListItemsByDoc = oList.getElementsByClassName('list-item');
      // 打印结果: NodeList(6) -> 6个list-item元素
      console.log(oListItems);
      // 打印结果: HTMLCollection(6) -> 6个list-item元素
      console.log(oListItemsByDoc);
      // 此时我们删除其中的一个item元素
      oList.removeChild(oList.lastElementChild);
      // 这时我们发现query系列曾经查询的item元素集合存在缓存
      // 并没有及时更新最新数据, 集合个数仍然为6个
      // 打印结果: NodeList(6) -> 6个list-item元素
      console.log(oListItems);
      // 反观getElementsByClassName得到的元素集合及时更新了最新的数据
      // 打印结果: HTMLCollection(5) -> 5个list-item元素
      console.log(oListItemsByDoc);
    </script>
  </body>
</html>
